// 配置axios的基础路径
axios.defaults.baseURL = "http://localhost:8080/";
// 配置Vue的全局属性用来获取axios对象
Vue.prototype.$http = axios;



//===============================axios的前置拦截器========================//
// 发送axios请求之前都会执行以下代码
axios.interceptors.request.use(res=> {
    // 从localStorage获取token
    let token = localStorage.getItem("token");
    if(token){
        // 将token设置到请求头
        res.headers["token"] = token;
    }
    return res;
},error => {
    Promise.reject(error);
})

//===============================axios的后置拦截器========================//
// 发送axios请求之后都会执行以下代码
axios.interceptors.response.use(res=> {
    if (!res.data.success && res.data.message == 'noLogin') {
        localStorage.removeItem("token");
        localStorage.removeItem("logininfo");
        // 跳转到登录页面
        location.href = "/login.html";
    }
    return res;
},error => {
    Promise.reject(error);
})

//===============================静态资源拦截器========================//
let url = location.href;
if (url.indexOf("/login.html") == -1 && url.indexOf("/register.html") == -1
        && url.indexOf("/callback.html") == -1 && url.indexOf("/binder.html") == -1) {
    let logininfo = localStorage.getItem("logininfo");
    if (!logininfo) {
        location.href = "/login.html";
    }
}
//注意要在index.html中引入common.js

//将地址栏？后面的参数装成json对象 - 以后这样的需求很多
function param2JsonObj(url) {
    // 截取？后面的参数
    let params = url.substring(url.indexOf("?")+1);
    // 按照&进行分割 - 获取每一对参数
    let paraArr = params.split("&"); // [code=0314GMkl225Gj94lpBnl2BpYxh14GMk6,state=STATE]
    let obj = {};
    for (let i = 0; i<paraArr.length; i++) {
        // 获取单个参数
        let para = paraArr[i];
        // 获取参数名
        let paraKey = para.split("=")[0];
        // 获取参数值
        let paraValue = para.split("=")[1];
        obj[paraKey] = paraValue;
    }
    return obj;
}

